﻿''' <summary>
''' Permite decorar la clase base con un tipo específico que permitirá su visualización en modo diseño.
''' </summary>
''' <remarks>Este atributo sólo tiene sentido cuando la clase base es abstracta y se utilizará como base de nuevos formularios.</remarks>
<AttributeUsage(AttributeTargets.Class)> _
Friend Class BaseFormAttribute
    Inherits Attribute

#Region " Propiedades"

    Private _designType As Type
    ''' <summary>
    ''' Obtiene el tipo concreto que se utilizará como base para mostrar el formulario en modo de diseño.
    ''' </summary>
    ''' <value>Un <see cref="Type"></see> que se utilizará como base para mostrar el formulario en modo de diseño.</value>
    ''' <returns>El <see cref="Type"></see> que se utilizará como base para mostrar el formulario en modo de diseño.</returns>
    Public ReadOnly Property DesignType() As Type
        Get
            Return _designType
        End Get
    End Property
#End Region

#Region " Constructores"

    ''' <summary>
    ''' Crea un nueva instancia de la clase <see cref="BaseFormAttribute"></see> indicando el tipo concreto que se utilizará para su visualización en modo diseño.
    ''' </summary>
    ''' <param name="design">Un <see cref="Type"></see> que se utilizará como base para mostrar el formulario en modo de diseño.</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal design As Type)
        _designType = design
    End Sub
#End Region

End Class
